//求1+2+3+...+n，要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句（A?B:C）。

// 利用按位与
class Solution {
public:
    int Sum_Solution(int n) {
        n && (n += Sum_Solution(n - 1));
        return n;
    }
};

// 利用static成员
class Sum
{
public:
    Sum()
    {
        _ret += _i;
        _i++;
    }

    static int GetRet()
    {
        return _ret;
    }

private:
    static int _i;
    static int _ret;
};

int Sum::_i = 1;
int Sum::_ret = 0;

class Solution {
public:
    int Sum_Solution(int n) {
        Sum arry[n];
        return Sum::GetRet();
    }
};

// 设计成内部类
class Solution {
private:
    static int _i;
    static int _ret;

    class Sum
    {
    public:
        Sum()
        {
            _ret += _i;
            _i++;
        }

        static int GetRet()
        {
            return _ret;
        }

    };
public:
    int Sum_Solution(int n) {
        Sum arry[n];
        return Sum::GetRet();
    }
};

int Solution::_i = 1;
int Solution::_ret = 0;